package br.com.vti.sisp_sicrim.antigo.controller.relatorios;

import java.io.FileNotFoundException;
import java.text.ParseException;

import net.sf.jasperreports.engine.JRException;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.vti.sisp_sicrim.antigo.util.Relatorios;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;

/**
 * Classe responsavel por encapsular o tratamento e as consistencias da tela
 * Scrr1300Report
 * 
 * @author Incode - Data: jun/2014
 * 
 */
public class Scrr1300Report {
	private int jAltura;
	private String jDescAltura;
	private int jEstadoCivil;
	private String jDescCivil;
	private int jCutis;
	private String jDescCutis;
	private int jCorCabelo;
	private String jDescCor;
	private int jTipoCabelo;
	private String jDescTipocabelo;
	private int jCorOlhos;
	private String jDescOlho;
	private int jCompleicao;
	private String jDescCompleicao;
	private String jSinais;
	private String jNomeVitima;
	private String jMotivo;
	private int jOcorrencia;
	private int jMatricula;
	private String jNomeDigitador;
	private int jDiaDig;
	private int jMesDig;
	private int jAnoDig;
	private int jHorario;
	private String[] jObservacoes = new String[5];
	private Result result;
	private Sessao sessao;
	private Relatorios report; // Classes views

	// Classes includes
	public Scrr1300Report() throws JRException {
		inicializar();
	}

	public Scrr1300Report(Sessao sessao) throws JRException {
		this.sessao = sessao;
		inicializar();
	}

	public void inicializar() throws JRException {
		report = new Relatorios();
		jAltura = 0;
		jDescAltura = "";
		jEstadoCivil = 0;
		jDescCivil = "";
		jCutis = 0;
		jDescCutis = "";
		jCorCabelo = 0;
		jDescCor = "";
		jTipoCabelo = 0;
		jDescTipocabelo = "";
		jCorOlhos = 0;
		jDescOlho = "";
		jCompleicao = 0;
		jDescCompleicao = "";
		jSinais = "";
		jNomeVitima = "";
		jMotivo = "";
		jOcorrencia = 0;
		jObservacoes = new String[5];
		jMatricula = 0;
		jNomeDigitador = "";
		jDiaDig = 0;
		jMesDig = 0;
		jAnoDig = 0;
		jHorario = 0;
		report.setNumeroRel(3, "D");
		{
			report.setNumeroLinhaRel(1, 8);
			{
				report.adicionaCampo(1, 12, "lit_1_12", "C", "", "Altura.....:");
				report.adicionaCampo(14, 1, "Jaltura", "N", "9", "");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", "-");
				report.adicionaCampo(18, 20, "Jdescaltura", "X", "", "");
				report.adicionaCampo(40, 14, "lit_40_14", "C", "",
						"Estado Civil.:");
				report.adicionaCampo(55, 1, "Jestadocivil", "N", "9", "");
				report.adicionaCampo(57, 1, "lit_57_1", "C", "", "-");
				report.adicionaCampo(60, 20, "Jdesccivil", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(2, 8);
			{
				report.adicionaCampo(1, 12, "lit_1_12", "C", "", "Cutis......:");
				report.adicionaCampo(14, 1, "Jcutis", "N", "9", "");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", "-");
				report.adicionaCampo(18, 20, "Jdesccutis", "X", "", "");
				report.adicionaCampo(40, 14, "lit_40_14", "C", "",
						"Cor Cabelo...:");
				report.adicionaCampo(55, 1, "Jcorcabelo", "N", "9", "");
				report.adicionaCampo(57, 1, "lit_57_1", "C", "", "-");
				report.adicionaCampo(60, 20, "Jdesccor", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(3, 8);
			{
				report.adicionaCampo(1, 12, "lit_1_12", "C", "", "Tipo Cabelo:");
				report.adicionaCampo(14, 1, "Jtipocabelo", "N", "9", "");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", "-");
				report.adicionaCampo(18, 20, "Jdesctipocabelo", "X", "", "");
				report.adicionaCampo(40, 14, "lit_40_14", "C", "",
						"Cor Olhos....:");
				report.adicionaCampo(55, 1, "Jcorolhos", "N", "9", "");
				report.adicionaCampo(57, 1, "lit_57_1", "C", "", "-");
				report.adicionaCampo(60, 20, "Jdescolho", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(4, 4);
			{
				report.adicionaCampo(1, 12, "lit_1_12", "C", "", "Compleicao.:");
				report.adicionaCampo(14, 1, "Jcompleicao", "N", "9", "");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", "-");
				report.adicionaCampo(18, 20, "Jdesccompleicao", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(5, 2);
			{
				report.adicionaCampo(1, 18, "lit_1_18", "C", "",
						"Marcas/Cicatrizes:");
				report.adicionaCampo(20, 60, "Jsinais", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(6, 2);
			{
				report.adicionaCampo(1, 18, "lit_1_18", "C", "",
						"Nome(s)da(s)Vitim:");
				report.adicionaCampo(20, 60, "Jnomevitima", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(7, 2);
			{
				report.adicionaCampo(1, 18, "lit_1_18", "C", "",
						"Infracao Penal...:");
				report.adicionaCampo(20, 60, "Jmotivo", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(9, 2);
			{
				report.adicionaCampo(1, 15, "lit_1_15", "C", "",
						"Incidencia No.:");
				report.adicionaCampo(17, 3, "Jocorrencia", "N", "999", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(10, 1);
			{
				report.adicionaCampo(3, 77, "Jobservacoes[1]", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(11, 1);
			{
				report.adicionaCampo(3, 77, "Jobservacoes[2]", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(12, 1);
			{
				report.adicionaCampo(3, 77, "Jobservacoes[3]", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(13, 1);
			{
				report.adicionaCampo(3, 77, "Jobservacoes[4]", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(15, 4);
			{
				report.adicionaCampo(1, 16, "lit_1_16", "C", "",
						"Cadastrado por :");
				report.adicionaCampo(19, 7, "Jmatricula", "N", "9999999", "");
				report.adicionaCampo(27, 1, "lit_27_1", "C", "", "-");
				report.adicionaCampo(30, 30, "Jnomedigitador", "X", "", "");
				report.setFimLinhaRel();
			}
			report.setNumeroLinhaRel(16, 9);
			{
				report.adicionaCampo(12, 2, "lit_12_2", "C", "", "Em");
				report.adicionaCampo(16, 1, "lit_16_1", "C", "", ":");
				report.adicionaCampo(19, 2, "Jdiadig", "N", "99", "");
				report.adicionaCampo(22, 1, "lit_22_1", "C", "", "/");
				report.adicionaCampo(24, 2, "Jmesdig", "N", "99", "");
				report.adicionaCampo(27, 1, "lit_27_1", "C", "", "/");
				report.adicionaCampo(29, 4, "Janodig", "N", "", "");
				report.adicionaCampo(34, 3, "lit_34_3", "C", "", "`as");
				report.adicionaCampo(39, 8, "Jhorario", "N", "99:99:99:99", "");
				report.setFimLinhaRel();
			}
		}
	}

	public boolean validar() {
		// validar os campos recebidos da tela
		return true;
	}

	public int getJaltura() {
		return jAltura;
	}

	public void setJaltura(int jAltura) throws ParseException {
		this.jAltura = jAltura;
		report.adicionaValorReport("Jaltura", jAltura);
	}

	public String getJdescaltura() {
		return jDescAltura;
	}

	public void setJdescaltura(String jDescAltura) throws ParseException {
		this.jDescAltura = jDescAltura;
		report.adicionaValorReport("Jdescaltura", jDescAltura);
	}

	public int getJestadocivil() {
		return jEstadoCivil;
	}

	public void setJestadocivil(int jEstadoCivil) throws ParseException {
		this.jEstadoCivil = jEstadoCivil;
		report.adicionaValorReport("Jestadocivil", jEstadoCivil);
	}

	public String getJdesccivil() {
		return jDescCivil;
	}

	public void setJdesccivil(String jDescCivil) throws ParseException {
		this.jDescCivil = jDescCivil;
		report.adicionaValorReport("Jdesccivil", jDescCivil);
	}

	public int getJcutis() {
		return jCutis;
	}

	public void setJcutis(int jCutis) throws ParseException {
		this.jCutis = jCutis;
		report.adicionaValorReport("Jcutis", jCutis);
	}

	public String getJdesccutis() {
		return jDescCutis;
	}

	public void setJdesccutis(String jDescCutis) throws ParseException {
		this.jDescCutis = jDescCutis;
		report.adicionaValorReport("Jdesccutis", jDescCutis);
	}

	public int getJcorcabelo() {
		return jCorCabelo;
	}

	public void setJcorcabelo(int jCorCabelo) throws ParseException {
		this.jCorCabelo = jCorCabelo;
		report.adicionaValorReport("Jcorcabelo", jCorCabelo);
	}

	public String getJdesccor() {
		return jDescCor;
	}

	public void setJdesccor(String jDescCor) throws ParseException {
		this.jDescCor = jDescCor;
		report.adicionaValorReport("Jdesccor", jDescCor);
	}

	public int getJtipocabelo() {
		return jTipoCabelo;
	}

	public void setJtipocabelo(int jTipoCabelo) throws ParseException {
		this.jTipoCabelo = jTipoCabelo;
		report.adicionaValorReport("Jtipocabelo", jTipoCabelo);
	}

	public String getJdesctipocabelo() {
		return jDescTipocabelo;
	}

	public void setJdesctipocabelo(String jDescTipocabelo)
			throws ParseException {
		this.jDescTipocabelo = jDescTipocabelo;
		report.adicionaValorReport("Jdesctipocabelo", jDescTipocabelo);
	}

	public int getJcorolhos() {
		return jCorOlhos;
	}

	public void setJcorolhos(int jCorOlhos) throws ParseException {
		this.jCorOlhos = jCorOlhos;
		report.adicionaValorReport("Jcorolhos", jCorOlhos);
	}

	public String getJdescolho() {
		return jDescOlho;
	}

	public void setJdescolho(String jDescOlho) throws ParseException {
		this.jDescOlho = jDescOlho;
		report.adicionaValorReport("Jdescolho", jDescOlho);
	}

	public int getJcompleicao() {
		return jCompleicao;
	}

	public void setJcompleicao(int jCompleicao) throws ParseException {
		this.jCompleicao = jCompleicao;
		report.adicionaValorReport("Jcompleicao", jCompleicao);
	}

	public String getJdesccompleicao() {
		return jDescCompleicao;
	}

	public void setJdesccompleicao(String jDescCompleicao)
			throws ParseException {
		this.jDescCompleicao = jDescCompleicao;
		report.adicionaValorReport("Jdesccompleicao", jDescCompleicao);
	}

	public String getJsinais() {
		return jSinais;
	}

	public void setJsinais(String jSinais) throws ParseException {
		this.jSinais = jSinais;
		report.adicionaValorReport("Jsinais", jSinais);
	}

	public String getJnomevitima() {
		return jNomeVitima;
	}

	public void setJnomevitima(String jNomeVitima) throws ParseException {
		this.jNomeVitima = jNomeVitima;
		report.adicionaValorReport("Jnomevitima", jNomeVitima);
	}

	public String getJmotivo() {
		return jMotivo;
	}

	public void setJmotivo(String jMotivo) throws ParseException {
		this.jMotivo = jMotivo;
		report.adicionaValorReport("Jmotivo", jMotivo);
	}

	public int getJocorrencia() {
		return jOcorrencia;
	}

	public void setJocorrencia(int jOcorrencia) throws ParseException {
		this.jOcorrencia = jOcorrencia;
		report.adicionaValorReport("Jocorrencia", jOcorrencia);
	}

	public int getJmatricula() {
		return jMatricula;
	}

	public void setJmatricula(int jMatricula) throws ParseException {
		this.jMatricula = jMatricula;
		report.adicionaValorReport("Jmatricula", jMatricula);
	}

	public String getJnomedigitador() {
		return jNomeDigitador;
	}

	public void setJnomedigitador(String jNomeDigitador) throws ParseException {
		this.jNomeDigitador = jNomeDigitador;
		report.adicionaValorReport("Jnomedigitador", jNomeDigitador);
	}

	public int getJdiadig() {
		return jDiaDig;
	}

	public void setJdiadig(int jDiaDig) throws ParseException {
		this.jDiaDig = jDiaDig;
		report.adicionaValorReport("Jdiadig", jDiaDig);
	}

	public int getJmesdig() {
		return jMesDig;
	}

	public void setJmesdig(int jMesDig) throws ParseException {
		this.jMesDig = jMesDig;
		report.adicionaValorReport("Jmesdig", jMesDig);
	}

	public int getJanodig() {
		return jAnoDig;
	}

	public void setJanodig(int jAnoDig) throws ParseException {
		this.jAnoDig = jAnoDig;
		report.adicionaValorReport("Janodig", jAnoDig);
	}

	public int getJhorario() {
		return jHorario;
	}

	public void setJhorario(int jHorario) throws ParseException {
		this.jHorario = jHorario;
		report.adicionaValorReport("Jhorario", jHorario);
	}

	public String[] getJobservacoes() {
		return jObservacoes;
	}

	public void setJobservacoes(String[] jObservacoes) throws ParseException {
		this.jObservacoes = jObservacoes;
		report.adicionaValorReport("Jobservacoes", jObservacoes);
	}

	public String getJobservacoes(int index) {
		return jObservacoes[index];
	}

	public void setJobservacoes(int index, String jObservacoes)
			throws ParseException {
		this.jObservacoes[index] = jObservacoes;
		report.adicionaValorReport("Jobservacoes[" + String.valueOf(index)
				+ "]", jObservacoes);
	}

	public void setPageSize(int pagesize) throws JRException {
		report.setPageSize(pagesize);
	}

	public void setLineSize(int linesize) {
		report.setLineSize(linesize);
	}

	public int getPageSize() {
		return report.getPageSize();
	}

	public int getPageLine() {
		return report.getPageLine();
	}

	public void saltaLinhas(int qtdLinhas) throws ParseException, JRException {
		report.saltaLinhas(qtdLinhas);
	}

	public void gravaRelatorio(int nroRel) throws ParseException, JRException {
		report.gravaRelatorio(report, nroRel, false);
	}

	public InputStreamDownload imprimir() throws FileNotFoundException,
			JRException {
		return report.imprimir();
	}
}
